﻿"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/systemmsg").build();

// 下线消息
connection.on("LogoutMsg", function (message) {
    layer.alert(message, {
        icon: 0,
        title: '系统消息',
        end: function () {
            location.href = '/auth/logout/';
        }
    });
});

// 消息中心
layui.use(['messageCenter'], function () {
    var $ = layui.jquery;
    var messageCenter = layui.messageCenter;
    var isInitEvent = false;

    msgInit(false);

    // 消息中心 模块初始化
    var readIds = [];
    function msgInit(isRefresh) {
        var module = messageCenter.render({
            elem: '.message',
            url: "/home/messagecenterdata/",
            height: '250px',
            isRefresh: isRefresh
        });

        if (!isInitEvent) { // 防止消息自动刷新后，重复绑定点击事件
            // 消息项 点击
            module.click(function (id, title, context, form, type) {
                var contentHtml = [];
                contentHtml.push('<div style="padding: 5px 10px;">');
                contentHtml.push(decodeURIComponent(context));
                contentHtml.push('</div>');

                // 详情弹窗
                layer.open({
                    type: 1,
                    area: ['600px', '300px'],
                    title: title,
                    content: contentHtml.join('')
                });

                // 公告类型【通知】，更新消息阅读状态
                if (parseInt(type) === 1 && parseInt(form) === 0 && readIds.indexOf(id) === -1) {
                    $.ajax({
                        url: '/notice/setreadstatus/',
                        type: 'post',
                        dataType: 'json',
                        data: { noticeId: id },
                        success: function (result) {
                            if (result.code !== 200) {
                                layer.msg(result.message, { icon: 2 });
                            }

                            readIds.push(id);
                        }
                    });
                }

            });

            isInitEvent = true;
        }
    }

    // 服务端主动触发客户端消息刷新业务
    connection.on("MessageCenterRefresh", function (message) {
        msgInit(true);
    });
});

//connection.on("Self", function (user) {
//    console.log('消息中心信息-您已加入聊天', `${user}`);
//});

connection.start().then(function () {
}).catch(function (err) {
    return console.error('连接出现异常', err.toString());
});